package com.ktjy.mapper;

import com.ktjy.entity.SysUser;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

/**
 * mapper接口
 * @Author JieGe
 * @Create 2024-12-07 - 9:38
 * @Description
 */
public interface SysUserMapper {

    /**
     * 查询用户信息列表
     * @param sysUser 用户对象(真实用户名模糊查询和角色id精确查询)
     */
    List<SysUser> getSysUserList(SysUser sysUser);

    // 添加用户
    // int insert(SysUser sysUser);

    // 示例4

    /**
     * 根据账号(登录账号)查询用户信息
     * @param account 登录账号
     */
    SysUser getByAccount(String account);  // By 根据 Account账号

    /**
     * 按条件并分页显示用户列表数据
     * @param entity 用户实体类，它将查询条件封装到用户实体类中
     * @param offset limit后的第一个参数，即起始位置偏移量
     * @param pageSize 第二个参数，即每页显示的数据行数
     * @return
     */
    List<SysUser> getPage(
            @Param("entity") SysUser entity,
            @Param("offset") Integer offset,
            @Param("pageSize") Integer pageSize
    );

    /**
     * 按条件查询用户列表的总记录数
     * @param entity 用户对象，查询条件封装到用户对象
     * @return
     */
    Long count(@Param("entity") SysUser entity);

    // 新增用户
    int insert(SysUser sysUser);

    // 修改用户
    int update(SysUser sysUser);

    // 通过用户id查询用户详情信息
    SysUser getById(Integer id);

}
